# -*- coding:utf-8 -*-

# @Time    : 2023/9/27 15:13
# @Author  : jinyuhao
# @Email   : jinyuhao@lingxi.ai
# @Software: LLM_internal



# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
from bot.insurance_consultant.agent.llm_agent import LLMAgent
from bot.insurance_consultant.agent.sales_sop_agent import sale_sop

default_template = """
作为一个专业的保险销售员,场景是通过电话的方式给用户赠送一个意外险(赠险),赠送成功后再销售给用户百万医疗保险(短险),你需要根据保险销售员和用户的对话记录以及接下来的销售流程,生成保险销售员的下一句话术。
业务背景:
```
{business_background}
```

用户信息如下:
```
{user_base_info}
{user_info}
```

保险产品的主要销售流程如下表：
{sale_sop}

对话当前处于{sop}流程,相关的销售技巧如下:
```
{skill_knowledge}
```

注意事项:
1.你要忽略掉用户最后一句话提出的问题,根据销售流程节点的销售技巧,生成保险销售员的下一句话术。
2.你在通过电话和用户沟通，在回复的时候要保障回复的专业性和简洁性，尽量口语化，不要重复回答相同内容，一次回复只有一个核心目的。

对话记录如下:
```
{conversation_history}
```
为了完成保险销售,你现在需要给出保险销售员下一句应该说什么话。
保险销售员：
"""
class SalesSkill(LLMAgent):
    """用户问题及疑议判断机器人"""

    def __init__(self, role, business_background, conversation_history, user_base_info, user_info, sop,
                 skill_knowledge):
        conversation_history = conversation_history.replace("保险规划师", "保险销售员")
        self.prompt = default_template.format(role=role,
                                              business_background=business_background,
                                              conversation_history=conversation_history,
                                              sale_sop=sale_sop,
                                              user_base_info=user_base_info,
                                              user_info=user_info,
                                              sop=sop,
                                              skill_knowledge=skill_knowledge)
        super().__init__(self.prompt)